package com.ty.skysystem.entity.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ty.common.validator.group.SaveGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.math.BigDecimal;

/**
 * @author 天宇宇宇宇宇 @Data 2020/12/18 17:20
 *     <p>用作开出承运单业务 功能：添加承运单及货物详情
 */
@Data
@ApiModel("存放需要添加的承运单信息和货物信息")
public class CarriersGoodsVo {
  /** 承运单编号(自增) */
  @Null(
      message = "新增时不能携带ID",
      groups = {SaveGroup.class})
  @ApiModelProperty("承运单编号(自增)")
  @TableId(value = "carriers_id", type = IdType.AUTO)
  private Long carriersId;
  /** 发货单位 */
  @NotBlank(
      message = "发货单位不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("发货单位")
  private String sendCompany;
  /** 发货单位地址 */
  @NotBlank(
      message = "发货单位地址不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("发货单位地址")
  private String sendAddress;
  /** 发货人 */
  @NotBlank(
      message = "发货人不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("发货人")
  private String sendLinkman;
  /** 发货人电话 */
  @NotBlank(
      message = "发货人电话不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("发货人电话")
  private String sendPhone;
  /** 收货单位 */
  @NotBlank(
      message = "收货单位不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("收货单位")
  private String receiveCompany;
  /** 收货单位地址 */
  @NotBlank(
      message = "收货单位地址不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("收货单位地址")
  private String receiveAddress;
  /** 收货人/联系人 */
  @NotBlank(
      message = "收货人不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("收货人/联系人")
  private String receiveLinkman;
  /** 收货人电话/联系人电话 */
  @NotBlank(
      message = "收货人电话不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("收货人电话/联系人电话")
  private String receivePhone;
  /** 保险费 */
  @ApiModelProperty("保险费")
  private BigDecimal insuranceCost;
  /** 运费 */
  @ApiModelProperty("运费")
  private BigDecimal transportCost;
  /** 其他费用 */
  @ApiModelProperty("其他费用")
  private BigDecimal otherCost;
  /** 合计费用 */
  @ApiModelProperty("合计费用")
  private BigDecimal totalCost;
  /** 备注 */
  @ApiModelProperty("备注")
  private String remark;

  /** 货物名称 */
  @NotBlank(
      message = "货物名称不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("货物名称")
  private String goodsName;
  /** 货物数量 */
  @NotNull(
      message = "货物数量不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("货物数量")
  private Integer amount;
  /** 货物重量 */
  @NotNull(
      message = "货物重量不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("货物重量")
  private BigDecimal weight;
  /** 货物体积 */
  @NotNull(
      message = "货物体积不能为空",
      groups = {SaveGroup.class})
  @ApiModelProperty("货物体积")
  private BigDecimal volume;
}
